package busterminal.command.route;

import busterminal.command.AbstractCommand;
import busterminal.entity.Route;
import busterminal.persistence.RouteDAO;
import busterminal.services.ServiceLocator;
import java.util.Arrays;
import java.util.List;

/**
 * Класс, реализующий действие: поиск маршрутов по названию конечного или промежуточного остановочного пункта
 */
public class FindByStoppingPointName extends AbstractCommand {

    /**
     * Имя параметра "Название маршрута"
     */
    public final static String PARAM_STOPPING_POINT_NAME = "Stopping point name";

    /**
     * Конструктор по умолчанию
     */
    public FindByStoppingPointName() {
        super("Find by stopping point name");
    }

    /**
     * Выполнить команду: найти марщруты
     */
    @Override
    public void execute() {
        RouteDAO routeDAO = ServiceLocator.getService(RouteDAO.class);
        for (Route route : routeDAO.findByStoppingPointName(parameters.get(PARAM_STOPPING_POINT_NAME))) {
            System.out.println(route);
        }
    }

    /**
     * Получить список имён параметров
     * @return список имён параметров
     */
    @Override
    public List<String> getParametersNames() {
        return Arrays.asList(PARAM_STOPPING_POINT_NAME);
    }
    
}
